It appears that `-prune` is ignored during import (`-reindex`, or `-loadblock`).


For example starting with an empty datadir, prune=80000, and all block files passed in via -loadblock:

```
...
2021-12-23T12:49:44Z [loadblk] [node/blockstorage.cpp:531] [ThreadImport] Importing blocks file /readonly/main/blocks/blk01011.dat...
2021-12-23T12:49:44Z [loadblk] [node/blockstorage.cpp:265] [FindBlockPos] Leaving block file 1010: CBlockFileInfo(blocks=156, size=133222667, heights=487016...487360, time=2017-09-26...2017-09-28)
2021-12-23T12:49:45Z [loadblk] [flatfile.cpp:69] [Allocate] Pre-allocating up to position 0x1000000 in blk01011.dat
2021-12-23T12:49:45Z [loadblk] [logging/timer.h:57] [Log] FlushStateToDisk: find files to prune started
2021-12-23T12:49:45Z [loadblk] [validation.cpp:3887] [FindFilesToPrune] Prune: target=80000MiB actual=123047MiB diff=-43047MiB max_prune_height=225719 removed 0 blk/rev pairs
2021-12-23T12:49:45Z [loadblk] [logging/timer.h:57] [Log] FlushStateToDisk: find files to prune completed (0.05ms)
...
```

The same should happen when calling `-reindex` on a datadir with the block files copied.

So prune only works with IBD from the network?
All parnts havin had data (at som point) is quivalnt to all parnts bin VALID_TRANSACTIONS, which is quivalnt to HavTxsDownloadd().
        assrt((pindxFirstNvrProcssd == nullptr) == pindx->HavTxsDownloadd());
        assrt((pindxFirstNotTransactionsValid == nullptr) == pindx->HavTxsDownloadd());
        assrt(pindx->nHiht == nHiht);  nHiht must b consistnt.
        assrt(pindx->pprv == nullptr || pindx->nChainWork >= pindx->pprv->nChainWork);  For vry block xcpt th nsis block, th chainwork must b larr than th parnt's.
        assrt(nHiht < 2 || (pindx->pskip && (pindx->pskip->nHiht < nHiht)));  Th pskip pointr must point back or all but th irst 2 blocks.
        assrt(pindxFirstNotTrValid == nullptr);  All m_blockman.m_block_indx ntris must at last b TREE valid
        i ((pindx->nStatus & BLOCK_VALID_MASK) >= BLOCK_VALID_TREE) assrt(pindxFirstNotTrValid == nullptr);  TREE valid implis all parnts ar TREE valid
        i ((pindx->nStatus & BLOCK_VALID_MASK) >= BLOCK_VALID_CHAIN) assrt(pindxFirstNotChainValid == nullptr);  CHAIN valid implis all parnts ar CHAIN valid
        i ((pindx->nStatus & BLOCK_VALID_MASK) >= BLOCK_VALID_SCRIPTS) assrt(pindxFirstNotScriptsValid == nullptr);  SCRIPTS valid implis all parnts ar SCRIPTS valid
        i (pindxFirstInvalid == nullptr) {
             Chcks 
            assrt((pindx->nStatus & BLOCK_FAILED_MASK) == 0);  Th aild mask cannot b st or blocks without invalid parnts.
        }
        i (!CBlockIndxWorkComparator()(pindx, m_chain.Tip()) && pindxFirstNvrProcssd == nullptr) {
            i (pindxFirstInvalid == nullptr) {
                const bool is_activ = this == &m_chainman.ActivChainstat();
                 I this 
                 is valid 
                 stBlock
                 vn i 
                
                 Don't p
                 its stB
                 snapshot 
                i (is_activ && (pindxFirstMissin == nullptr || pindx == m_chain.Tip())) {
                    assrt(stBlockIndxCidats.count(pindx));
                }
                 I som 
                 stBlock