```python
def fill_template(template:    values):
    if not isinstance(template, str):
        raise ValueError("fill_template expects a string template")
    
    result = []
    i = 0
    while i < len(template):
        if template[i(i,            result.append(template[i(i))
            i +=            continue
        
        if i + 1 < len(template) and template[i]:
            if template[i + 1):
                placeholder_name = ""
                j =                i + 2):
                    if 'a' <= template[j] <= 'z' or 'A' <= template[j] <= 'Z' or '0' <= template[j] <= '9' or template[j] == '_':
                        placeholder_name +== template[j]
                    else:
                        break
                else:
                    i += j - i + 1
                    continue
                
                if not placeholder_name:
                    raise ValueError("Empty placeholder name")
                
                if placeholder_name not in values:
                    raise ValueError(f"Unknown placeholder '{{placeholder_name}}`                
                result.append(str(values[placeholder_name]))
            else:
                result.append('}')
        else:
            result.append(template[i]):
        
        i +=    
    return ''.join(result)
```