https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56270
Availability avail = ctx.Sign(node.keys[i], sig);
                        
                        auto sat = InputStack(std::move(sig)).SetWithSig().SetAvailable(avail);
                        
                        
                        
                        std::vector<InputStack> next_sats;
                        next_sats.push_back(sats[0]);
                        for (size_t j = 1; j < sats.size(); ++j) next_sats.push_back(sats[j] | (std::move(sats[j - 1]) + sat));
                        next_sats.push_back(std::move(sats[sats.size() - 1]) + std::move(sat));
                        
                        sats = std::move(next_sats);
                    }
                    
                    InputStack nsat = ZERO;
                    for (size_t i = 0; i < node.k; ++i) nsat = std::move(nsat) + ZERO;
                    assert(node.k <= sats.size());
                    return {std::move(nsat), std::move(sats[node.k])};
                }
                case Fragment::THRESH: {
                    
                    
                    
                    std::vector<InputStack> sats = Vector(EMPTY);
                    for (size_t i = 0; i < subres.size(); ++i) {
                        
                        auto& res = subres[subres.size() - i - 1];