class TandemPath {

    /** Private to enforce static. */
    private TandemPath() {
    }

    /**
     * Appends an ASCII extension to the specified {@code filePath}, truncating
     * and packing in a SHA-256 hash if the UTF-8 encoding of the filename
     * component of the path would exceed 254 bytes and arriving at a final
     * size of 255 bytes in that special case.
     * @param filePath a defined instance
     * @param asciiExtension a defined instance that is expected to be only
     *                       ASCII so that its UTF-8 form is the same length
     * @return a transformed path whose filename component's UTF-8 encoding is
     * not more than 255 bytes.
     * @throws IllegalArgumentException {@code asciiExtension} is too long to
     * allow packing a SHA-256 hash in the transformation.
     */
    public static String join(String filePath, String asciiExtension) {<FILL_FUNCTION_BODY>}
}


        File file = new File(filePath);
        String newName = TandemFilename.join(file.getName(), asciiExtension);
        File newFile = new File(file.getParent(), newName);
        return newFile.getPath();
    
<no_super_class>