https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56270
}
            }
            
            
            size_t keys_count = node.keys.size();
            keyset key_set{node.keys.begin(), node.keys.end(), Comp(ctx)};
            if (key_set.size() != keys_count) {
                
                node.has_duplicate_keys = true;
                return {};
            }
            
            for (auto& sub : subs) {
                keys_count += sub->size();
                
                
                if (key_set.size() < sub->size()) std::swap(key_set, *sub);
                key_set.merge(*sub);
                if (key_set.size() != keys_count) {
                    node.has_duplicate_keys = true;
                    return {};
                }
            }
            node.has_duplicate_keys = false;
            return key_set;
        };
        TreeEval<state>(upfn);
    }
    
    size_t ScriptSize() const { return scriptlen; }