public void load() throws IOException {
    myReader = new ExeReader(myTemplate.getFileName().toString());
    try (var stream = new OffsetTrackingInputStream(new DataInputStream(Files.newInputStream(myTemplate)))) {
      myReader.read(stream);
    }

    var resourceSection = (ResourceSectionReader)myReader.getSectionReader(Section.RESOURCES_SECTION_NAME);
    myRoot = resourceSection.getRoot();

    var subDir = myRoot.findSubDir(DirectoryEntry.RT_STRING);
    myStringTableDirectory = subDir != null ? new StringTableDirectory(subDir) : null;

    var versionInfoResource = getVersionInfoResource();
    myVersionInfo = new VersionInfo();
    myVersionInfo.read(new OffsetTrackingInputStream(new DataInputStream(new ByteArrayInputStream(versionInfoResource.getBytes()))));
  }
public void load()