https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56270
case Fragment::OR_C:
                case Fragment::OR_D:
                case Fragment::OR_I:
                    return subs[0] || subs[1];
                case Fragment::THRESH:
                    return std::count(subs.begin(), subs.end(), true) >= node.k;
                default: 
                    assert(subs.size() == 1);
                    return subs[0];
            }
        });
    }
    
    bool IsValid() const { return !(GetType() == ""_mst) && ScriptSize() <= MAX_STANDARD_P2WSH_SCRIPT_SIZE; }
    
    bool IsValidTopLevel() const { return IsValid() && GetType() << "B"_mst; }
    
    bool IsNonMalleable() const { return GetType() << "m"_mst; }
    
    bool NeedsSignature() const { return GetType() << "s"_mst; }
    
    bool CheckTimeLocksMix() const { return GetType() << "k"_mst; }
    
    bool CheckDuplicateKey() const { return has_duplicate_keys && !*has_duplicate_keys; }
    
    bool ValidSatisfactions() const { return IsValid() && CheckOpsLimit() && CheckStackSize(); }
    
    bool IsSaneSubexpression() const { return ValidSatisfactions() && IsNonMalleable() && CheckTimeLocksMix() && CheckDuplicateKey(); }
    
    bool IsSane() const { return IsValidTopLevel() && IsSaneSubexpression() && NeedsSignature(); }